
package com.ynet.middleground.riskmanage.bean.hangxin.hzfpsqdsq;

import java.io.Serializable;

import javax.validation.constraints.NotEmpty;

import com.thoughtworks.xstream.annotations.XStreamAlias;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author liwq
 * @description
 * @date 2021-11-05 16:04
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "红字发票申请单基本信息", description = "红字发票申请单基本信息")
public class HZZPSQBTXX implements Serializable {

    private static final long serialVersionUID = -1152616788155363873L;

    @XStreamAlias("NSRSBH")
    @ApiModelProperty(value = "纳税人识别号", notes = "纳税人识别号", required = true)
    @NotEmpty(message = "纳税人识别号不能为空")
    protected String nsrsbh;

    @XStreamAlias("FJH")
    @ApiModelProperty(value = "分机号(51盒子编号（由青岛航信提供，每个盒子对应一个主分机号)", notes = "分机号分机号(51盒子编号（由青岛航信提供，每个盒子对应一个主分机号)",
        required = true)
    @NotEmpty(message = "分机号不能为空")
    protected String fjh;

    @XStreamAlias("FPZL")
    @ApiModelProperty(value = "发票种类(0:专票 52：电子专票)", notes = "发票种类(0:专票 52：电子专票)", required = true)
    @NotEmpty(message = "发票种类不能为空")
    protected String fpzl;

    @XStreamAlias("XFSH")
    @ApiModelProperty(value = "销方税号", notes = "销方税号", required = true)
    @NotEmpty(message = "销方税号不能为空")
    protected String xfsh;

    @XStreamAlias("XFMC")
    @ApiModelProperty(value = "销方名称", notes = "销方名称", required = true)
    @NotEmpty(message = "销方名称不能为空")
    protected String xfmc;

    @XStreamAlias("GFSH")
    @ApiModelProperty(value = "购方税号", notes = "购方税号")
    protected String gfsh;

    @XStreamAlias("GFMC")
    @ApiModelProperty(value = "购方名称", notes = "购方名称", required = true)
    @NotEmpty(message = "购方名称不能为空")
    protected String gfmc;

    @XStreamAlias("GFDZDH")
    @ApiModelProperty(value = "购方地址电话", notes = "购方地址电话")
    protected String gfdzdh;

    @XStreamAlias("YFPDM")
    @ApiModelProperty(value = "原发票代码", notes = "原发票代码", required = true)
    @NotEmpty(message = "原发票代码不能为空")
    protected String yfpdm;

    @XStreamAlias("YFPHM")
    @ApiModelProperty(value = "原发票号码", notes = "原发票号码", required = true)
    @NotEmpty(message = "原发票号码不能为空")
    protected String yfphm;

    @XStreamAlias("HJJE")
    @ApiModelProperty(value = "合计金额(单位：元 不含税金额（2位小数）负数)", notes = "合计金额(单位：元 不含税金额（2位小数）负数)", required = true)
    @NotEmpty(message = "合计金额不能为空")
    protected String hjje;

    @ApiModelProperty(value = "合计税额(单位：元 （2位小数）负数)", notes = "合计税额(单位：元 （2位小数）负数)", required = true)
    @NotEmpty(message = "合计税额不能为空")
    @XStreamAlias("HJSE")
    protected String hjse;

    @ApiModelProperty(value = "信息表类型(0 正常；1 逾期(仅销方开具)", notes = "信息表类型(0 正常；1 逾期(仅销方开具)", required = true)
    @NotEmpty(message = "信息表类型不能为空")
    @XStreamAlias("XXBLX")
    protected String xxblx;

    @XStreamAlias("SZLB")
    @ApiModelProperty(value = "税种类别(0 营业税，1 增值税（目前全部为 1）)", notes = "税种类别(0 营业税，1 增值税（目前全部为 1）)")
    protected String szlb;

    @ApiModelProperty(value = "开票时间(YYYYMMDDHHMMSS)", notes = "开票时间(YYYYMMDDHHMMSS)", required = true)
    @NotEmpty(message = "开票时间不能为空")
    @XStreamAlias("KPRQ")
    protected String kprq;

    @ApiModelProperty(value = "填开时间(YYYYMMDDHHMMSS)", notes = "开票时间(YYYYMMDDHHMMSS)", required = true)
    @NotEmpty(message = "填开时间不能为空")
    @XStreamAlias("DATE")
    protected String date;

    @XStreamAlias("REQMEMO")
    @ApiModelProperty(
        value = "十位数字表示的申请说明，含正常和逾期（1100000000：购买方，已抵扣（默认选择）\n"
            + "1010000000：购买方，未抵扣，无法认证、纳税人识别号认证不符、增值税专用发票代码或号码认证不符、所购货物或劳务或服务不属于增值税扣税项目范围；\n"
            + "0000000100：销售方，因开票有误购买方拒收的、因开票有误等原因尚未交付的）",
        notes = "十位数字表示的申请说明，含正常和逾期(1100000000：购买方，已抵扣（默认选择）\n"
            + "1010000000：购买方，未抵扣，无法认证、纳税人识别号认证不符、增值税专用发票代码或号码认证不符、所购货物或劳务或服务不属于增值税扣税项目范围；\n"
            + "0000000100：销售方，因开票有误购买方拒收的、因开票有误等原因尚未交付的)")
    protected String reqmemo;

    @XStreamAlias("BMBBH")
    @ApiModelProperty(value = "编码版本号", notes = "编码版本号")
    protected String bmbbh;

    @ApiModelProperty(value = "营业税标志(0000000010：中外合作油气田（原海洋石油）5%税率、1.5%税率；0000000020：差额税；0000000000：其他。)",
        notes = "营业税标志(0000000010：中外合作油气田（原海洋石油）5%税率、1.5%税率；0000000020：差额税；0000000000：其他。)")
    @XStreamAlias("YYSBZ")
    protected String yysbz;

    @XStreamAlias("JBR")
    @ApiModelProperty(value = "经办人", notes = "经办人", required = true)
    @NotEmpty(message = "经办人不能为空")
    protected String jbr;

    @XStreamAlias("CZLX")
    @ApiModelProperty(value = "操作类型(0：是新增，1 是变更；未上传税局的红字发票申请单可以进行变更)", notes = "操作类型(0：是新增，1 是变更；未上传税局的红字发票申请单可以进行变更)")
    protected String czlx;

    @XStreamAlias("BYZD1")
    @ApiModelProperty(value = "备用字段1", notes = "备用字段1")
    protected String byzd1;

    @XStreamAlias("BYZD2")
    @ApiModelProperty(value = "备用字段2", notes = "备用字段2")
    protected String byzd2;
}
